import { PersistenceOptions } from 'pinia-plugin-persistedstate';

/**
 * @description pinia持久化参数配置
 * @param {String} key 存储到持久化的 name
 * @param { StorageLike } storage 存储的方位
 * @param {Array} pick 需要持久化的 state name
 * @param {Object} serializer 自定义序列化程序，用于在持久化之前序列化数据，并在解除冻结存储之前反序列化数据。 必须有 serialize: (value: StateTree) => string 和 deserialize: (value: string) => StateTree
 * @return persist
 * */

const persist = (key: string, pick?: string[]) => {
  const persist: PersistenceOptions = {
    key,
    storage: localStorage,
    pick,
  };

  return persist;
};

export default persist;
